﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Mapping.Seguridad
{
    public static class MappingPermisos
    {
        public static List<Entidades.Seguridad.Permiso> ConsultarPermisos()
        {
            try
            {

                SqlCommand cmdPermisos = new SqlCommand();
                cmdPermisos.CommandText = "sp_ConsultarPermisos";
                Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
                cmdPermisos.CommandType = System.Data.CommandType.StoredProcedure;
                cmdPermisos.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
                SqlDataReader drPermisos = cmdPermisos.ExecuteReader();

                List<Entidades.Seguridad.Permiso> ColPermisos = new List<Entidades.Seguridad.Permiso>();

                while (drPermisos.Read())
                {
                    Entidades.Seguridad.Permiso oPermiso = new Entidades.Seguridad.Permiso();
                    oPermiso.IdPermiso = drPermisos["Id_Permisos"].ToString();
                    oPermiso.Nombre = drPermisos["Descripcion"].ToString();
                    ColPermisos.Add(oPermiso);
                }

                Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
                return ColPermisos;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public static bool AgregarPermiso(Entidades.Seguridad.Permiso oPermiso)
        {
            SqlCommand cmdFormu = new SqlCommand();
            cmdFormu.CommandText = "sp_AgregarPermiso";
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdFormu.CommandType = System.Data.CommandType.StoredProcedure;
            cmdFormu.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdFormu.Parameters.Add("@Id_Permisos", System.Data.SqlDbType.VarChar, 15).Value = oPermiso.IdPermiso;
            cmdFormu.Parameters.Add("@Nombre", System.Data.SqlDbType.VarChar, 50).Value = oPermiso.Nombre;
            cmdFormu.ExecuteNonQuery();
            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return true;
        }

        public static bool EliminarPermiso(Entidades.Seguridad.Permiso oPermiso)
        {
            SqlCommand cmdPermiso = new SqlCommand();
            cmdPermiso.CommandText = "sp_EliminarPermiso";
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdPermiso.CommandType = System.Data.CommandType.StoredProcedure;
            cmdPermiso.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdPermiso.Parameters.Add("@Id_Permiso", System.Data.SqlDbType.VarChar, 15).Value = oPermiso.IdPermiso;
            cmdPermiso.ExecuteNonQuery();
            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return true;
        }


        public static bool ModificarPermiso(Entidades.Seguridad.Permiso oPermiso)
        {
            SqlCommand cmdPermiso = new SqlCommand();
            cmdPermiso.CommandText = "sp_ModificarPermiso";
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdPermiso.CommandType = System.Data.CommandType.StoredProcedure;
            cmdPermiso.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdPermiso.Parameters.Add("@IdPermiso", System.Data.SqlDbType.VarChar, 15).Value = oPermiso.IdPermiso;
            cmdPermiso.Parameters.Add("@Descripcion", System.Data.SqlDbType.VarChar, 50).Value = oPermiso.Nombre;
            cmdPermiso.ExecuteNonQuery();
            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return true;
        }
       
    }
}
